package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("双月报 DTO")
public class ReportBimonthlyDto extends BaseDto {
    /**
     * id
     */
    String id;
    /**
     * 行政区域id
     */
    @Size(max = 85, message = "areaId最大85字符")
    String areaId;
    /**
     * 行政区域名称
     */
    @Size(max = 255, message = "areaName最大255字符")
    String areaName;
    /**
     * 月报月份(起)
     */
    @NotNull(message = "dateReportBegin不能为空") @Size(max = 15, message = "dateReportBegin最大15字符")
    String dateReportBegin;
    /**
     * 月报月份(止)
     */
    @NotNull(message = "dateReportEnd不能为空") @Size(max = 15, message = "dateReportEnd最大15字符")
    String dateReportEnd;
    /**
     * 填报日期
     */
    @JSONField(format = "yyyy-MM-dd")
    Date reportingDate;
    /**
     * 填报人id
     */
    Long reportingRiveruserId;
    /**
     * 填报人姓名
     */
    @Size(max = 255, message = "reportingRiveruserName最大255字符")
    String reportingRiveruserName;
    /**
     * 填报机构id
     */
    Long reportingOrgId;
    /**
     * 填报机构名称
     */
    @Size(max = 255, message = "reportingOrgName最大255字符")
    String reportingOrgName;
    /**
     * 县级开展专项行动次数
     */
    @NotNull(message = "specialCountyNum不能为空")
    Integer specialCountyNum;
    /**
     * 乡级开展专项行动次数
     */
    @NotNull(message = "specialTownNum不能为空")
    Integer specialTownNum;
    /**
     * 问责-通报（人次）
     */
    @NotNull(message = "accountabilityBulletinNum不能为空")
    Integer accountabilityBulletinNum;
    /**
     * 问责-诫勉谈话（人次）
     */
    @NotNull(message = "accountabilityTalkNum不能为空")
    Integer accountabilityTalkNum;
    /**
     * 行政处分-警告（人次）
     */
    @NotNull(message = "executiveWarningNum不能为空")
    Integer executiveWarningNum;
    /**
     * 行政处分-降级（人次）
     */
    @NotNull(message = "executiveDemoteNum不能为空")
    Integer executiveDemoteNum;
    /**
     * 行政处分-开除（人次）
     */
    @NotNull(message = "executiveExpelNum不能为空")
    Integer executiveExpelNum;
    /**
     * 行政处分-记过（人次）
     */
    @NotNull(message = "executiveDemeritNum不能为空")
    Integer executiveDemeritNum;
    /**
     * 行政处分-撤职（人次）
     */
    @NotNull(message = "executiveDismissedNum不能为空")
    Integer executiveDismissedNum;
    /**
     * 党纪处分-警告（人次）
     */
    @NotNull(message = "partyWarningNum不能为空")
    Integer partyWarningNum;
    /**
     * 党纪处分-撤除党内职务（人次）
     */
    @NotNull(message = "partyDismantleInnerjobNum不能为空")
    Integer partyDismantleInnerjobNum;
    /**
     * 党纪处分-开除党籍（人次）
     */
    @NotNull(message = "partyExpelledMembershipNum不能为空")
    Integer partyExpelledMembershipNum;
    /**
     * 党纪处分-其他形式（人次）
     */
    @NotNull(message = "partyOtherNum不能为空")
    Integer partyOtherNum;
    /**
     * 党纪处分-严重警告（人次）
     */
    @NotNull(message = "partySeriousWarningNum不能为空")
    Integer partySeriousWarningNum;
    /**
     * 党纪处分-留党察看（人次）
     */
    @NotNull(message = "partyCheckNum不能为空")
    Integer partyCheckNum;
    /**
     * 巡河情况-巡河（湖）人次
     */
    @NotNull(message = "patrolRiverNum不能为空")
    Integer patrolRiverNum;
    /**
     * 巡河情况-发现问题
     */
    @NotNull(message = "patrolDiscoverProblemsNum不能为空")
    Integer patrolDiscoverProblemsNum;
    /**
     * 巡河情况-解决问题
     */
    @NotNull(message = "patrolSolveProblemsNum不能为空")
    Integer patrolSolveProblemsNum;
    /**
     * 培训情况-培训人次
     */
    @NotNull(message = "patrolTraineesNum不能为空")
    Integer patrolTraineesNum;
    /**
     * 培训情况-培训班次
     */
    @NotNull(message = "patrolTrainingshiftNum不能为空")
    Integer patrolTrainingshiftNum;
    /**
     * 培训情况-河长（湖长）培训（人次）
     */
    @NotNull(message = "patrolRiverSupervisorNum不能为空")
    Integer patrolRiverSupervisorNum;
    /**
     * 培训情况-河长办工作人员培训（人次）
     */
    @NotNull(message = "patrolRiverStaffNum不能为空")
    Integer patrolRiverStaffNum;
    /**
     * 备注
     */
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    /**
     * 0
     */
    Integer state;
    /**
     * 版本号
     */
    Integer version;
    /**
     * 排序
     */
    Integer orderNo;
    /**
     * 删除标记
     */
    Integer delFlag;
    /**
     * 建立者id
     */
    Long createId;
    /**
     * 创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    /**
     * 更新时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;

}
